package main

//import (
//	"github.com/gorilla/websocket"
//	"learngo/websocket/impl"
//	"net/http"
//	"time"
//)
//
//var(
//	upgrader = websocket.Upgrader{
//		//允许跨域访问
//		CheckOrigin: func(r *http.Request) bool {
//			return true
//		},
//	}
//)
//
//func wsHandler(w http.ResponseWriter, r *http.Request) {
//	//w.Write([]byte("hello"))
//	//收到http请求(upgrade),完成websocket协议转换
//	//在应答的header中放上upgrade:websoket
//	var (
//		wsConn *websocket.Conn
//		err error
//		data []byte
//		conn *impl.Connection
//	)
//	//Upgrade websocket(返回给客户端的消息)
//	if wsConn, err = upgrader.Upgrade(w, r, nil); err !=nil {
//		//报错了，直接返回底层的websocket链接就会终断掉
//		return
//	}
//	if conn, err = impl.InitConnection(wsConn); err != nil {
//		goto ERR
//	}
//
//	//心跳
//	go func() {
//		var(
//			err error
//		)
//		for {
//			if err = conn.WriteMessage([]byte("heatbeat")); err != nil {
//				return
//			}
//			time.Sleep(5*time.Second)
//		}
//
//	}()
//
//	for {
//		if data, err = conn.ReadMessage(); err != nil {
//			goto ERR
//		}
//		if err = conn.WriteMessage(data); err != nil {
//			goto ERR
//		}
//	}
//ERR:
//	conn.Close()
//}
//
//func userHandler(w http.ResponseWriter, r *http.Request) {
//	w.Write([]byte("Hello World!"))
//}
//
//func main() {
//	//http://localhost:7777/ws
//	http.HandleFunc("/ws", wsHandler)
//	http.HandleFunc("/user", userHandler)
//	//服务端启动
//	http.ListenAndServe("0.0.0.0:7777", nil)
//}
